#include <algorithm>
#include "MoveToFront.h"

using namespace std;

int mainMTF(int argc, const char * argv[])
{
    string input = "Placez votre main sur un poêle une minute et ça vous semble durer une heure. Asseyez vous auprès d'une jolie fille une heure et ça vous semble durer une minute. C'est ça la relativité.";
    vector<unsigned char> input_bytes;

    //Conversion to bytes
    for(int i=0; i < input.length(); i++){
        input_bytes.push_back(static_cast<unsigned char>(input[i]));
    }

    MoveToFront m = *new MoveToFront();

    //Dictionary
    string dictionary = m.makeDictionary();
    cout << "DICTIONARY : ";
    for (int i = 0; i < dictionary.size(); i++){
        cout << static_cast<unsigned char>(dictionary[i]) << " ";
    }
    cout << endl;

    //ENDODING
    vector<unsigned char> encoded = m.encode(input_bytes);
    cout << "ENCODED : " << endl;
    for (int i = 0; i < encoded.size(); i++){
        cout << static_cast<int>(encoded[i]) << " ";
    }
    cout << endl;

    //DECODING
    vector<unsigned char> decoded = m.decode(encoded);
    cout << "DECODED : " << endl;
    for (int i = 0; i < encoded.size(); i++){
        cout << decoded[i];
    }
    cout << endl;

    return 0;
}
